[INFO] fetching crate yade 0.1.2...
[INFO] fixing yade-0.1.2 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate yade 0.1.2 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate yade 0.1.2
[INFO] finished tweaking crates.io crate yade 0.1.2
[INFO] tweaked toml for crates.io crate yade 0.1.2 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate yade 0.1.2 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 5 packages to latest compatible versions
[INFO] [stderr]       Adding quote v0.3.15 (available: v1.0.46)
[INFO] [stderr]       Adding syn v0.11.11 (available: v2.0.118)
[INFO] [stderr]       Adding synstructure v0.6.1 (available: v0.13.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `yade` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9c3ab004981c75f86d9a824791fa59135247630ab32740c72dc4d0c1c74227f6
[INFO] running `Command { std: "docker" "start" "9c3ab004981c75f86d9a824791fa59135247630ab32740c72dc4d0c1c74227f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9c3ab004981c75f86d9a824791fa59135247630ab32740c72dc4d0c1c74227f6" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9c3ab004981c75f86d9a824791fa59135247630ab32740c72dc4d0c1c74227f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9c3ab004981c75f86d9a824791fa59135247630ab32740c72dc4d0c1c74227f6" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `yade` (manifest) generated 1 warning
[INFO] [stderr]     Checking unicode-xid v0.0.4
[INFO] [stderr]     Checking quote v0.3.15
[INFO] [stderr]     Checking synom v0.11.3
[INFO] [stderr]     Checking syn v0.11.11
[INFO] [stderr]    Compiling synstructure v0.6.1
[INFO] [stderr]    Compiling yade v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2015 edition to 2018
[INFO] [stderr]    Migrating tests/lib_test.rs from 2015 edition to 2018
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.13s
[INFO] [stderr] crater-edition-check: yade v0.1.2 (/opt/rustwide/workdir) updating edition from 2015 to 2018
[INFO] [stderr]     Checking yade v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                             ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 44 | ...                   _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 44 |                                 _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:47:37
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:54:37
[INFO] [stdout]    |
[INFO] [stdout] 54 |                         _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 54 |                         _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                             ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 44 | ...                   _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 44 |                                 _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:47:37
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:54:37
[INFO] [stdout]    |
[INFO] [stdout] 54 |                         _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 54 |                         _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                             ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 44 | ...                   _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 44 |                                 _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:47:37
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:54:37
[INFO] [stdout]    |
[INFO] [stdout] 54 |                         _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 54 |                         _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/lib_test.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub cause: Option<Box<Error>>,
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub cause: Option<Box<dyn Error>>,
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/lib_test.rs:35:20
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub cause: Box<Error>,
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub cause: Box<dyn Error>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> tests/lib_test.rs:60:33
[INFO] [stdout]    |
[INFO] [stdout] 60 |     assert_eq!("boxed cause", e.cause().unwrap().to_string());
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> tests/lib_test.rs:72:33
[INFO] [stdout]    |
[INFO] [stdout] 72 |     assert_eq!("for a cause", e.cause().unwrap().to_string());
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> tests/lib_test.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     assert!(e.cause().is_none());
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> tests/lib_test.rs:96:28
[INFO] [stdout]    |
[INFO] [stdout] 96 |     assert_eq!("oh no!", e.cause().unwrap().to_string());
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]    --> tests/lib_test.rs:108:70
[INFO] [stdout]     |
[INFO] [stdout] 108 |             assert_eq!("No such file or directory (os error 2)", err.cause().unwrap().to_string());
[INFO] [stdout]     |                                                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.77s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr]     Checking yade v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                             ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 44 | ...                   _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 44 |                                 _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:47:37
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 47 |                         _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/lib.rs:54:37
[INFO] [stdout]    |
[INFO] [stdout] 54 |                         _ => panic!(INVALID_CAUSE),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 54 |                         _ => panic!("{}", INVALID_CAUSE),
[INFO] [stdout]    |                                     +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]        Fixed src/lib.rs (4 fixes)
[INFO] [stderr]    Migrating tests/lib_test.rs from 2018 edition to 2021
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/lib_test.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub cause: Option<Box<Error>>,
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `--force-warn bare-trait-objects` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub cause: Option<Box<dyn Error>>,
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `lib_test`
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/lib_test.rs:35:20
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub cause: Box<Error>,
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub cause: Box<dyn Error>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> tests/lib_test.rs
[INFO] [stderr]   = cause: error: proc-macro derive panicked
[INFO] [stderr]              --> tests/lib_test.rs:13:17
[INFO] [stderr]               |
[INFO] [stderr]            13 | #[derive(Debug, YadeError)]
[INFO] [stderr]               |                 ^^^^^^^^^
[INFO] [stderr]               |
[INFO] [stderr]               = help: message: Failed to parse input to `#[derive(YadeError)]`: "failed to parse derive input: \"#[display(msg = \\\"a kind error: {}\\\", kind)] pub struct KindError\\n{ pub kind: KindErrorKind, #[cause] pub cause: Option<Box<dyn Error>>, }\""
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: proc-macro derive panicked
[INFO] [stderr]              --> tests/lib_test.rs:32:17
[INFO] [stderr]               |
[INFO] [stderr]            32 | #[derive(Debug, YadeError)]
[INFO] [stderr]               |                 ^^^^^^^^^
[INFO] [stderr]               |
[INFO] [stderr]               = help: message: Failed to parse input to `#[derive(YadeError)]`: "failed to parse derive input: \"pub struct BoxedError { #[cause] pub cause: Box<dyn Error>, }\""
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: `BoxedError` doesn't implement `std::fmt::Display`
[INFO] [stderr]              --> tests/lib_test.rs:59:32
[INFO] [stderr]               |
[INFO] [stderr]            33 | pub struct BoxedError {
[INFO] [stderr]               | --------------------- method `to_string` not found for this struct because it doesn't satisfy `BoxedError: ToString` or `BoxedError: std::fmt::Display`
[INFO] [stderr]            ...
[INFO] [stderr]            59 |     assert_eq!("BoxedError", e.to_string());
[INFO] [stderr]               |                                ^^^^^^^^^ method cannot be called on `BoxedError` due to unsatisfied trait bounds
[INFO] [stderr]               |
[INFO] [stderr]               = note: the following trait bounds were not satisfied:
[INFO] [stderr]                       `BoxedError: std::fmt::Display`
[INFO] [stderr]                       which is required by `BoxedError: ToString`
[INFO] [stderr]            note: the trait `std::fmt::Display` must be implemented
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/fmt/mod.rs:1189:0
[INFO] [stderr]               = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]               = note: the following trait defines an item `to_string`, perhaps you need to implement it:
[INFO] [stderr]                       candidate #1: `ToString`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `cause` found for struct `BoxedError` in the current scope
[INFO] [stderr]              --> tests/lib_test.rs:60:33
[INFO] [stderr]               |
[INFO] [stderr]            33 | pub struct BoxedError {
[INFO] [stderr]               | --------------------- method `cause` not found for this struct
[INFO] [stderr]            ...
[INFO] [stderr]            60 |     assert_eq!("boxed cause", e.cause().unwrap().to_string());
[INFO] [stderr]               |                                 ^^^^^ field, not a method
[INFO] [stderr]               |
[INFO] [stderr]               = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]               = note: the following trait defines an item `cause`, perhaps you need to implement it:
[INFO] [stderr]                       candidate #1: `std::error::Error`
[INFO] [stderr]            help: remove the arguments
[INFO] [stderr]               |
[INFO] [stderr]            60 -     assert_eq!("boxed cause", e.cause().unwrap().to_string());
[INFO] [stderr]            60 +     assert_eq!("boxed cause", e.cause.unwrap().to_string());
[INFO] [stderr]               |
[INFO] [stderr]            help: one of the expressions' fields has a method of the same name
[INFO] [stderr]               |
[INFO] [stderr]            60 |     assert_eq!("boxed cause", e.cause.cause().unwrap().to_string());
[INFO] [stderr]               |                                 ++++++
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: `KindError` doesn't implement `std::fmt::Display`
[INFO] [stderr]              --> tests/lib_test.rs:70:64
[INFO] [stderr]               |
[INFO] [stderr]            15 | pub struct KindError {
[INFO] [stderr]               | -------------------- method `to_string` not found for this struct because it doesn't satisfy `KindError: ToString` or `KindError: std::fmt::Display`
[INFO] [stderr]            ...
[INFO] [stderr]            70 |     assert_eq!("a kind error: Kind is Two: Things for free", e.to_string());
[INFO] [stderr]               |                                                                ^^^^^^^^^ method cannot be called on `KindError` due to unsatisfied trait bounds
[INFO] [stderr]               |
[INFO] [stderr]               = note: the following trait bounds were not satisfied:
[INFO] [stderr]                       `KindError: std::fmt::Display`
[INFO] [stderr]                       which is required by `KindError: ToString`
[INFO] [stderr]            note: the trait `std::fmt::Display` must be implemented
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/fmt/mod.rs:1189:0
[INFO] [stderr]               = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]               = note: the following trait defines an item `to_string`, perhaps you need to implement it:
[INFO] [stderr]                       candidate #1: `ToString`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `cause` found for struct `KindError` in the current scope
[INFO] [stderr]              --> tests/lib_test.rs:72:33
[INFO] [stderr]               |
[INFO] [stderr]            15 | pub struct KindError {
[INFO] [stderr]               | -------------------- method `cause` not found for this struct
[INFO] [stderr]            ...
[INFO] [stderr]            72 |     assert_eq!("for a cause", e.cause().unwrap().to_string());
[INFO] [stderr]               |                                 ^^^^^-- help: remove the arguments
[INFO] [stderr]               |                                 |
[INFO] [stderr]               |                                 field, not a method
[INFO] [stderr]               |
[INFO] [stderr]               = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]               = note: the following trait defines an item `cause`, perhaps you need to implement it:
[INFO] [stderr]                       candidate #1: `std::error::Error`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: `KindError` doesn't implement `std::fmt::Display`
[INFO] [stderr]              --> tests/lib_test.rs:82:47
[INFO] [stderr]               |
[INFO] [stderr]            15 | pub struct KindError {
[INFO] [stderr]               | -------------------- method `to_string` not found for this struct because it doesn't satisfy `KindError: ToString` or `KindError: std::fmt::Display`
[INFO] [stderr]            ...
[INFO] [stderr]            82 |     assert_eq!("a kind error: Kind is One", e.to_string());
[INFO] [stderr]               |                                               ^^^^^^^^^ method cannot be called on `KindError` due to unsatisfied trait bounds
[INFO] [stderr]               |
[INFO] [stderr]               = note: the following trait bounds were not satisfied:
[INFO] [stderr]                       `KindError: std::fmt::Display`
[INFO] [stderr]                       which is required by `KindError: ToString`
[INFO] [stderr]            note: the trait `std::fmt::Display` must be implemented
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/fmt/mod.rs:1189:0
[INFO] [stderr]               = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]               = note: the following trait defines an item `to_string`, perhaps you need to implement it:
[INFO] [stderr]                       candidate #1: `ToString`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `cause` found for struct `KindError` in the current scope
[INFO] [stderr]              --> tests/lib_test.rs:84:15
[INFO] [stderr]               |
[INFO] [stderr]            15 | pub struct KindError {
[INFO] [stderr]               | -------------------- method `cause` not found for this struct
[INFO] [stderr]            ...
[INFO] [stderr]            84 |     assert!(e.cause().is_none());
[INFO] [stderr]               |               ^^^^^-- help: remove the arguments
[INFO] [stderr]               |               |
[INFO] [stderr]               |               field, not a method
[INFO] [stderr]               |
[INFO] [stderr]               = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]               = note: the following trait defines an item `cause`, perhaps you need to implement it:
[INFO] [stderr]                       candidate #1: `std::error::Error`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 8 previous errors
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            For more information about this error, try `rustc --explain E0599`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.47s
[INFO] [stderr] crater-edition-check: yade v0.1.2 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling yade v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> tests/lib_test.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub cause: Option<Box<Error>>,
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub cause: Option<Box<dyn Error>>,
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> tests/lib_test.rs:35:20
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub cause: Box<Error>,
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub cause: Box<dyn Error>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]  --> tests/lib_test.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Debug, YadeError)]
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this error originates in the derive macro `YadeError` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> tests/lib_test.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Debug, YadeError)]
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the derive macro `YadeError` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> tests/lib_test.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Debug, YadeError)]
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the derive macro `YadeError` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> tests/lib_test.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, YadeError)]
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the derive macro `YadeError` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> tests/lib_test.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 | #[derive(Debug, YadeError)]
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the derive macro `YadeError` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> tests/lib_test.rs:60:33
[INFO] [stdout]    |
[INFO] [stdout] 60 |     assert_eq!("boxed cause", e.cause().unwrap().to_string());
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> tests/lib_test.rs:72:33
[INFO] [stdout]    |
[INFO] [stdout] 72 |     assert_eq!("for a cause", e.cause().unwrap().to_string());
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> tests/lib_test.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     assert!(e.cause().is_none());
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> tests/lib_test.rs:96:28
[INFO] [stdout]    |
[INFO] [stdout] 96 |     assert_eq!("oh no!", e.cause().unwrap().to_string());
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]    --> tests/lib_test.rs:108:70
[INFO] [stdout]     |
[INFO] [stdout] 108 |             assert_eq!("No such file or directory (os error 2)", err.cause().unwrap().to_string());
[INFO] [stdout]     |                                                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `yade` (test "lib_test") due to 7 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9c3ab004981c75f86d9a824791fa59135247630ab32740c72dc4d0c1c74227f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9c3ab004981c75f86d9a824791fa59135247630ab32740c72dc4d0c1c74227f6", kill_on_drop: false }`
[INFO] [stdout] 9c3ab004981c75f86d9a824791fa59135247630ab32740c72dc4d0c1c74227f6
